
// pinia 插件，负责从缓存获取初始数据，以及自动调用刷新（refresh）方法

const CACHE_KEY_PREFIX = 'PINIA_';

export function cacheGet($id){
    const key = CACHE_KEY_PREFIX + $id;
    const str = window.localStorage.getItem(key);
    return str ? JSON.parse(str) : null;
}

export function cacheSet($id, value){
    const key = CACHE_KEY_PREFIX + $id;
    const str = JSON.stringify(value);
    window.localStorage.setItem(key, str);
}



export default (context)=>{
    // 初次调用每个pinia仓库时触发

    // 从缓存获取数据，然后合并
    const $id = context.store.$id
    const cacheValue = cacheGet($id);
    if (cacheValue){
        console.log(`从本地存储中获取了 ${$id} 仓库的数据，并成功合并！`);
        context.store.$patch(cacheValue);
    }

    if (typeof context.store.refresh === 'function') context.store.refresh();


}